// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.utils;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

/**
 * Object工具类
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年1月26日
 */
public class ObjectUtils {
	/**
	 * Object转map
	 *
	 * @param object 实体
	 * @return map
	 */
	public static Map<String, Object> object2Map(Object object) {
		Map<String, Object> result = new HashMap<>();
		// 获得类的的属性名 数组
		Field[] fields = object.getClass().getDeclaredFields();
		try {
			for (Field field : fields) {
				field.setAccessible(true);
				String name = new String(field.getName());
				result.put(name, field.get(object));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

	/**
	 * Object转map String
	 *
	 * @param object 实体
	 * @return map
	 */
	public static Map<String, String> object2MapString(Object object) {
		Map<String, String> result = new HashMap<>();
		// 获得类的的属性名 数组
		Field[] fields = object.getClass().getDeclaredFields();
		try {
			for (Field field : fields) {
				field.setAccessible(true);
				String name = new String(field.getName());
				result.put(name, String.valueOf(field.get(object)));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}


	/**
	 * 判断实体是否为空
	 *
	 * @param obj 实体
	 * @return true or false
	 */
	public static boolean isEmpty(Object obj) {
		return com.alibaba.excel.util.ObjectUtils.isEmpty(obj);
	}
}
